package com.example.quanxin.config;/*
 *
 *   welcome:11311
 *   创建时间:2023/5/20
 *
 */

import lombok.Data;
import okhttp3.Cookie;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class GlobalConfig {
    private static Map<String, Long> courseMapping = new HashMap<>(Map.of(
            "图形图像处理技术",234933541L,
            "Python程序设计基础", 231182970L,
            "C语言程序设计", 222374995L,
            "数字电子技术", 222338388L,
            "电工电子技术(课程思政）",221142144L,
            "物联网",218410834L,
            "电子技术基础与技能", 217469081L,
            "电子技术基础与技能 第3版", 217449917L,
            "数学_基础模块_下册_高教版", 205865347L,
            "数据可视化技术应用", 243185166L)
    );

    static {
        courseMapping.put("中国特色社会主义", 236441807L);
        courseMapping.put("Web前端开发技术基础", 95813125L);
    }

    private static Map<String, Long> classMapping = new HashMap<>(Map.of(
            "22级大数据高考三班", 74784084L,
            "22级大数据高考二班",74783968L,
            "22级大数据高考一班",74783229L,
            "2021级计算机应用3+2（2班）",77697887L,
            "2023级旅游服务与管理1班",81039161L,
            "大数据高二3班（3+2）",98621823L,
            "22级大数据高考二班平行班",242124418L

    ));

    private static Map<String, String> student = new HashMap<>(Map.of(
            "牟孝杨", "c415p589IchOgWQMg2oBzQ==,5FP7JSi9CSy+nCwQ5Dhc6A==,17,女,22级大数据高考三班,3,314948034,276127271,74784084,https://file.pzhszgh.cn/union/outdoor/0acedf90e4ed4e86a94ad9871e4ca2a7.jpg",
            "谭春勇", "kXqStdKGVxo+644PuvpNzg==,5FP7JSi9CSy+nCwQ5Dhc6A==,17,男,大数据高二年级（3+2）,3,396655720,334957315,98621823,https://www.batterycar.cdnhxx.com/batterycar/8781dc09ed254c2ca60da88eac0103d5/ff85e6796da849a084dfebeb14c9351e.jpg",
            "向靖涵", "kXqStdKGVxo+644PuvpNzg==,5FP7JSi9CSy+nCwQ5Dhc6A==,17,女,大数据高二年级（3+2）,3,396655720,334957315,98621823,https://5b0988e595225.cdn.sohucs.com/images/20200311/19d169d60e9c4c838c5c7ddb3ffe5408.JPG"
    ));

    private static List<String> workPostCountArr = new ArrayList<>(List.of(
            "任务1 项目分析与红橙特点大数据分析",
                    "任务2.子任务1 红橙产地数据呈现",
                    "任务2.子任务2 红橙种植成本数据呈现",
                    "任务3.子任务1 红橙销售数量数据呈现" ,
                    "任务3.子任务2 红橙销售价格数据呈现" ,
                    "任务3.子任务3 红橙销售成本数据呈现" ,
                    "任务4 红橙盈利数据可视化呈现" ,
                    "任务5 红橙数据综合大屏制作"
            ));
    private static Map<Long, String> courseDateMapping = new HashMap<>(Map.of(
            231182970L,"8c5560e59ea55e8da4390ba2d0846ec1,7aa6add52e2f4c699626cbaac16e43d1,112501221",
            243185166L,"c3a91034a26f460e79241dc0b61d22c3,cde00ef95a56dc6098db42d0ddb46216,192405842")
    );

    private static Map<Long, String> courseAiDateMapping = new HashMap<>(Map.of(
            234933541L, "1.了解图像处理的基本概念和技术 2.掌握常见的图像处理算法和工具3.能够应用图像处理技术解决实际问题。&第1周：介绍图形图像处理的基本概念，学习图像编码与格式。第2周：学习图像滤波、边缘检测等基本处理算法。第3-4周：深入学习图像分割、特征提取等高级处理技术。第5-6周：完成小组项目，应用图像处理技术解决实际问题。",
            231182970L, "1.掌握Python的基本语法和编程技巧 2.能够编写简单的Python程序。&第1周：学习Python的基本数据类型和控制流程。第2周：深入学习函数、模块和文件操作。第3-4周：学习面向对象编程和异常处理。第5-6周：完成编程练习和小项目，加深对Python的理解和应用。",
            222374995L, "1.掌握C语言的基本语法和程序设计方法 2.能够编写简单的C程序。&第1周：介绍C语言的基本结构和数据类型。第2周：学习循环、条件语句和函数。第3-4周：深入学习指针、数组和字符串。第5-6周：完成编程练习和小项目，加强对C语言的实践能力。",
            222338388L, "1.了解数字电子技术的基本原理和应用 2.能够设计和分析数字电路。&第1周：介绍数字电子技术的基本概念和逻辑门。第2周：学习布尔代数和组合逻辑电路。第3-4周：深入学习时序逻辑电路和计数器设计。第5-6周：完成数字电路设计项目，应用所学知识解决实际问题。",
            221142144L, "1.了解电工电子技术在社会发展中的重要性和影响 2.培养对技术与社会、伦理的思考能力。&第1周：介绍电工电子技术的发展历史和基本概念。第2周：探讨电工电子技术对社会经济的影响。第3-4周：组织讨论和演讲，探讨技术伦理和社会责任。第5-6周：撰写综合报告，总结课程所学内容并展望未来发展。",
            218410834L, "1.了解物联网的概念、技术和应用场景。&第1周：介绍物联网的基本概念和发展历史。第2周：学习物联网的技术架构和通信协议。第3-4周：深入探讨物联网的应用场景和案例分析。第5-6周：完成物联网系统设计项目，实践物联网技术。",
            217469081L, "1.掌握电子技术的基础知识和实践技能。&第1周：介绍电子技术的基本概念和电路原理。第2周：学习电子元器件的特性和使用方法。第3-4周：进行基础电路实验和测试。第5-6周：完成电子技术实践项目，应用所学知识解决实际问题。",
            217449917L, "1.深入理解电子技术的基础原理和应用技能。&第1周：复习电子技术基础知识和常用电路。第2周：学习模拟电路和数字电路的设计方法。第3-4周：进行电路仿真和调试实验。第5-6周：完成电子技术设计项目，提高综合应用能力。",
            205865347L, "1.巩固数学基础知识，为其他技术课程的学习打下坚实基础。&第1周：复习基础数学知识，包括代数、几何和概率。第2周：学习高等数学的基本概念和运算规则。第3-4周：进行数学习题练习和模拟考试。第5-6周：完成数学建模项目，应用数学知识解决实际问题。",
            243185166L, "1.掌握数据可视化技术的基本原理和应用方法。&第1周：介绍数据可视化的基本概念和工具。第2周：学习数据处理和清洗方法。第3-4周：探讨不同类型的数据可视化技术和图表设计。第5-6周：完成数据可视化项目，展示和分析实际数据。"
    ));


    public static void addClassInfo(String name, Long classId){
        classMapping.put(name, classId);
    }

    public static void addCourseInfo(String name, Long classId){
        courseMapping.put(name, classId);
    }

    public static String globalToken = "";

    private static Map<String, List<Cookie>> globalCookieMap = new HashMap<>();

    private static GlobalConfig INSTANCE = new GlobalConfig();

    public static GlobalConfig getInstance(){
        return INSTANCE;
    }

    public static List<Cookie> getCookies(String name){
        return globalCookieMap.get(name);
    }


    public static Map<String, Long> getCourseMapping() {
        return courseMapping;
    }

    public static Map<String, String> getStudentMapping() {
        return student;
    }

    public static Map<String, Long> getClassMapping() {
        return classMapping;
    }

    public static Map<String, List<Cookie>> getGlobalCookieMap() {
        return globalCookieMap;
    }


    public static List<String> getWorkPostCountArr() {
        return workPostCountArr;
    }

    public static Map<Long, String> getCourseDate() {
        return courseDateMapping;
    }

    public static Map<Long, String> getAiCourseDate() {
        return courseAiDateMapping;
    }
}
